package com.manager.devicemanager.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;

public class PWUtils {
    // 简单示例，实际应用中可根据需求修改加密方式
    public static String encryptPassword(String password) {
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        return encoder.encode(encryptPasswordMD5(password));
    }

    public static Boolean match(String password, String encodedPassword) {
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        return encoder.matches(password, encodedPassword);
    }
    // 新增：MD5 加密方法
    public static String encryptPasswordMD5(String password) {
        // 使用 UTF-8 编码转换为字节数组，避免中文/特殊字符乱码
        return DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8));
    }

    // 新增：MD5 密码匹配方法
    public static Boolean matchMD5(String password, String encodedPassword) {
        // 对输入密码进行 MD5 加密后与存储的加密串比较
        String inputMd5 = encryptPasswordMD5(password);
        return inputMd5.equals(encodedPassword);
    }

    public static void main(String[] args) {
        System.out.println(encryptPassword("Kk123456"));
        System.out.println(match(encryptPasswordMD5("Kk123456"),encryptPassword("Kk123456")));
    }

}
